QT自学过程记录(7

您所在的位置:网站首页 qt5 download QT自学过程记录(7

QT自学过程记录(7

2022-12-21 12:56| 来源: 网络整理| 查看: 265

1 目录及资源索引

  QT自学过程目录及资源索引

2 参考文章说明

  QT QMap介绍与使用

3 简介及时间复杂度比较

  QMap和QHash其实类似于C++中的Map和Hash类,只不过在QT中,加以封装。   Map:Map是一个很有用的数据结构。它以“键-值”的形式保存数据。在使用的时候,通过提供字符标示(键)即可得到想要的数据。这个“数据”即可以是一个字符串,也可以是任意对象,当然也包括自己定义的类对象。说明:map是以值传递的形式保存数据的。   Hash:QHash是一个在哈希表中存储键值对的数据结构。它的接口几乎与QMap相同,但是与QMap相比,它对K的模板类型有不同的要求,而且它提供了比QMap更快的查找功能。   QMap类和QHash类具有非常类似的功能,差别如下:

QHash具有比QMap更快的查找速度; QHash以任意的顺序存储数据项,而QMap总是按照键Key顺序存储数据; QHash的键类型Key必须提供 operator == () 和一个全局的 qHash(Key) 函数,而QMap的键类型Key必须提供 operator < () 函数。 二者时间复杂度比较如下图: 在这里插入图片描述 4 QMap类

  QMap提供了一个从类型为Key的键到类型为T的值的映射。

5 QHash类

  QHash具有与QMap几乎完全相同的API。QHash维护着一张哈希表(Hash Table),哈希表的大小与QHash的数据项的数目相适应。

6 Java风格迭代器遍历容器

  对于每一个容器类,Qt都提供了两种类型的Java风格迭代器数据类型,即只读访问和读写访问,具体分类如下图: 在这里插入图片描述

#include int main(int argc,char *argv[]) { QMap map; // 定义一个关联容器 map.insert("beijing", "111"); // 添加内容 对应 键值 - 内容 map.insert("shanghai", "021"); map.insert("nanjing", "025"); QMapIterator i(map); // 为遍历容器定义变量 for(;i.hasNext();) qDebug()


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3